home *** CD-ROM | disk | FTP | other *** search
/ com!online 2005 May / com_0505_1.iso / opensource / top10 / amc_install.exe / {app} / Scripts / Amazon (large pic).ifs < prev    next >
Encoding:
Text File  |  2004-12-08  |  4.6 KB  |  128 lines

  1. // GETINFO SCRIPTING
  2. // Amazon - Large picture
  3.  
  4. (***************************************************
  5.  *  Author: facts (jfacts1731@yahoo.com)           *
  6.  *  Script for the importation of pictures from    *
  7.  *  amazon, FindLine code taken from               *
  8.  *  IMDB (large pic).ifs, GetToken code from       *
  9.  *   SWAG archive                                  *
  10.  *                                                 *
  11.  *  For use with Ant Movie Catalog 3.4.0           *
  12.  *  www.ant.be.tf/moviecatalog ╖╖╖ www.buypin.com  *
  13.  *                                                 *
  14.  *  This program is free software; you can         *
  15.  *  redistribute it and/or modify it under the     *
  16.  *  terms of the GNU General Public License as     *
  17.  *  published by the Free Software Foundation;     *
  18.  *  either version 2 of the License, or (at your   *
  19.  *  option) any later version.                     *
  20.  ***************************************************)
  21.  
  22. program AmazonImport;
  23.  
  24. var
  25.   AmazonPage, AmazonPageNOHTML: TStringList;
  26.   TempHold, THolder, MovieName : string;
  27.   LineNr, I: Integer;
  28.  
  29. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
  30. var
  31.   i: Integer;
  32. begin
  33.   Result := -1;
  34.   if StartAt < 0 then
  35.     StartAt := 0;
  36.   for i := StartAt to List.Count-1 do
  37.     if Pos(Pattern, List.GetString(i)) <> 0 then
  38.     begin
  39.       Result := i;
  40.       Break;
  41.     end;
  42. end;
  43.  
  44. function GetToken(aString, SepChar: String; TokenNum: Integer):String;
  45. var
  46.    Token     : string;
  47.    StrLen    : Integer;
  48.    TNum      : Integer;
  49.    TEnd      : Integer;
  50.  
  51. begin
  52.      StrLen := Length(aString);
  53.      TNum   := 1;
  54.      TEnd   := StrLen;
  55.      while ((TNum <= TokenNum) and (TEnd <> 0)) do
  56.      begin
  57.           TEnd := Pos(SepChar,aString);
  58.           if TEnd <> 0 then
  59.           begin
  60.                Token := Copy(aString,1,TEnd-1);
  61.                Delete(aString,1,TEnd);
  62.                TNum := TNum + 1;
  63.           end
  64.           else
  65.           begin
  66.                Token := aString;
  67.           end;
  68.      end;
  69.      if TNum >= TokenNum then
  70.      begin
  71.           GetToken := Token;
  72.      end
  73.      else
  74.      begin
  75.           GetToken := '';
  76.      end;
  77. end;
  78.  
  79. function AsinParse(Line : string): string;
  80. begin
  81.   Result := GetToken(GetToken(Line,'.',2),Chr(34),1);
  82. end;
  83.  
  84. begin
  85.   AmazonPage := TStringList.Create;
  86.   AmazonPage.Text := GetPage('http://www.amazon.com/exec/obidos/search-handle-url/index=dvd&field-title=' + StringReplace(UrlEncode(GetField(fieldOriginalTitle)),'+', '%20'));
  87.   AmazonPageNOHTML := TStringList.Create;
  88.   AmazonPageNOHTML.Text := AmazonPage.Text;
  89.   TempHold := AmazonPageNOHTML.Text;
  90.   HTMLRemoveTags(TempHold);
  91.   AmazonPageNOHTML.Text := TempHold;
  92.   if FindLine('Amazon.com: DVD:',AmazonPage,1) <> -1 then
  93.     begin
  94.       LineNr := FindLine('<input type="hidden" name="asin.',AmazonPage,1);
  95.       GetPicture('http://images.amazon.com/images/P/' + AsinParse(AmazonPage.Getstring(LineNr)) + '.01.LZZZZZZZ.jpg',False);
  96.       exit;
  97.     end
  98.    else
  99.    if FindLine('DVD Search Results: we were unable to find exact matches for your search for',AmazonPage,1) <> -1 then
  100.     begin
  101.       exit;
  102.     end
  103.    else
  104.     if (FindLine('Below are results for',AmazonPage,1) <> -1) OR (FindLine('All results',AmazonPage,1) <> -1) OR (FindLine('Most popular results for',AmazonPage,1) <> -1) OR (FindLine('Results for',AmazonPage,1) <> -1) then
  105.         begin
  106.         I := 1;
  107.         PickTreeClear;
  108.         PickTreeAdd('Movies','');
  109.         while (i <= AmazonPage.Count-1) do
  110.         begin
  111.           THolder := AmazonPage.GetString(i);
  112.           HTMLRemoveTags(THolder);
  113.           if (Pos('/exec/obidos/ASIN/',AmazonPage.GetString(i)) <> 0) and (THolder <> '') and (Pos('Buy new',AmazonPage.GetString(i)) = 0) and (Pos('Used & new from',AmazonPage.GetString(i)) = 0) and (Pos('THUMBZZZ',AmazonPage.GetString(i)) = 0) then
  114.             PickTreeAdd(THolder,GetToken(AmazonPage.GetString(i),'/',5));
  115.           if (Pos('/exec/obidos/tg/detail/',AmazonPage.GetString(i)) <> 0) and (THolder <> '') and (Pos('Buy new',AmazonPage.GetString(i)) = 0) and (Pos('Used & new from',AmazonPage.GetString(i)) = 0) and (Pos('THUMBZZZ',AmazonPage.GetString(i)) = 0) and (Pos('http://www.amazon.com',AmazonPage.GetString(i)) = 0) and (Pos('In-store Pickup',AmazonPage.GetString(i)) = 0) then
  116.             PickTreeAdd(THolder,GetToken(AmazonPage.GetString(i),'/',7));
  117.           i := i + 1;
  118.         end
  119.         if PickTreeExec(THolder) then
  120.         begin
  121.           GetPicture('http://images.amazon.com/images/P/' + THolder + '.01.LZZZZZZZ.jpg',False);
  122.           exit;
  123.         end
  124.         exit;
  125.       end
  126.     else
  127. end.
  128.